package com.example.demo.support;

import com.google.common.collect.Maps;
import lombok.Data;

import java.util.Map;

@Data
public class IMBaseResponse {

    private static final Map<Integer, String> ERROR_CODE_MESSAGE = Maps.newHashMap();

    static {
        ERROR_CODE_MESSAGE.put(80001, "消息文本安全打击");
        ERROR_CODE_MESSAGE.put(70001, "User Sig已经失效，请重新生成");
        ERROR_CODE_MESSAGE.put(60002, "HTTP 解析错误 ，请检查 HTTP 请求 URL 格式");
        ERROR_CODE_MESSAGE.put(60003, "HTTP 请求 JSON 解析错误，请检查 JSON 格式");
        ERROR_CODE_MESSAGE.put(60004, "请求 URL 或 JSON 包体中帐号或签名错误");
        ERROR_CODE_MESSAGE.put(60005, "请求 URL 或 JSON 包体中帐号或签名错误");
        ERROR_CODE_MESSAGE.put(60006, "SDKAppID 失效，请核对 SDKAppID 有效性");
        ERROR_CODE_MESSAGE.put(60007, "REST 接口调用频率超过限制，请降低请求频率");
        ERROR_CODE_MESSAGE.put(60008, "服务请求超时或 HTTP 请求格式错误，请检查并重试");
        ERROR_CODE_MESSAGE.put(60009, "请求资源错误，请检查请求 URL");
        ERROR_CODE_MESSAGE.put(60010, "请求需要 App 管理员权限");
        ERROR_CODE_MESSAGE.put(60011, "SDKAppID 请求频率超限，请降低请求频率");
        ERROR_CODE_MESSAGE.put(60012, "REST 接口需要带 SDKAppID，请检查请求 URL 中的 SDKAppID");
        ERROR_CODE_MESSAGE.put(60013, "HTTP 响应包 JSON 解析错误");
        ERROR_CODE_MESSAGE.put(60014, "置换帐号超时");
        ERROR_CODE_MESSAGE.put(60015, "请求包体帐号类型错误，请确认帐号为字符串格式");
    }

    // 请求处理的结果，OK 表示处理成功，FAIL 表示失败
    protected String ActionStatus;
    // 错误信息
    protected String ErrorInfo;
    // 错误码，0表示成功，非0表示失败
    protected Integer ErrorCode;

    public String transformErrorCode(Integer errorCode) {
        return ERROR_CODE_MESSAGE.get(errorCode);
    }

    public boolean isSuccess() {
        return this.ErrorCode == 0;
    }
}
